﻿/*******************************************************************************
 * @file insert.c
 * @brief 插入算法库
 *******************************************************************************
*/


#include "insert.h"
#include <stddef.h>
#include <string.h>


/**
 * @brief 从头部插入数据
 * @param arr 数组结构体指针
 * @param data 插入的数据
 */
void insert(const Arr_t *arr, const void *data)
{
    if(NULL == arr) return;

    uint8_t *ptr = (uint8_t *)arr->pArr;
    for(int i = (arr->len - 1) * arr->size; i > 0; i -= arr->size)
    {
        ptr[i] = ptr[i - arr->size];
    }
    memcpy(ptr, data, arr->size);
}
